using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;

namespace ConsoleApplication2.Models.Mapping
{
    public class so_gal_farevalueMap : EntityTypeConfiguration<so_gal_farevalue>
    {
        public so_gal_farevalueMap()
        {
            // Primary Key
            this.HasKey(t => t.id);

            // Properties
            this.Property(t => t.SectionString)
                .HasMaxLength(500);

            this.Property(t => t.SECTION_LABEL)
                .IsFixedLength()
                .HasMaxLength(3);

            this.Property(t => t.FARE_SECTION_INDICATOR)
                .IsFixedLength()
                .HasMaxLength(2);

            this.Property(t => t.CURRENCY__FOR_BASE_FARE)
                .IsFixedLength()
                .HasMaxLength(3);

            this.Property(t => t.BASE_FARE_AMOUNT)
                .IsFixedLength()
                .HasMaxLength(12);

            this.Property(t => t.CURRENCY_FOR_TOTAL)
                .IsFixedLength()
                .HasMaxLength(3);

            this.Property(t => t.TOTAL_AMOUNT)
                .IsFixedLength()
                .HasMaxLength(12);

            this.Property(t => t.CURRENCY__FOR_EQ_AMOUNT)
                .IsFixedLength()
                .HasMaxLength(3);

            this.Property(t => t.EQUIVALENT_AMOUNT)
                .IsFixedLength()
                .HasMaxLength(12);

            this.Property(t => t.CURRENCY_FOR_TAXES)
                .IsFixedLength()
                .HasMaxLength(3);

            this.Property(t => t.TAX_1_IDENTIFIER_T1_)
                .IsFixedLength()
                .HasMaxLength(3);

            this.Property(t => t.TAX_1)
                .IsFixedLength()
                .HasMaxLength(8);

            this.Property(t => t.TAX_1_TAX_CODE)
                .IsFixedLength()
                .HasMaxLength(2);

            this.Property(t => t.TAX_2_IDENTIFIER_T2_)
                .IsFixedLength()
                .HasMaxLength(3);

            this.Property(t => t.TAX_2)
                .IsFixedLength()
                .HasMaxLength(8);

            this.Property(t => t.TAX_2_TAX_CODE)
                .IsFixedLength()
                .HasMaxLength(2);

            this.Property(t => t.TAX_3_IDENTIFIER_T3_)
                .IsFixedLength()
                .HasMaxLength(3);

            this.Property(t => t.TAX_3)
                .IsFixedLength()
                .HasMaxLength(8);

            this.Property(t => t.TAX_3_TAX_CODE)
                .IsFixedLength()
                .HasMaxLength(2);

            this.Property(t => t.TAX_IDENTIFIER_IT_)
                .IsFixedLength()
                .HasMaxLength(3);

            this.Property(t => t.INDIVIDUAL_TAX_1)
                .IsFixedLength()
                .HasMaxLength(8);

            this.Property(t => t.INDIVIDUAL_TAX_1_TAX_CODE)
                .IsFixedLength()
                .HasMaxLength(2);

            this.Property(t => t.INDIVIDUAL_TAX_2)
                .IsFixedLength()
                .HasMaxLength(8);

            this.Property(t => t.INDIVIDUAL_TAX_2_TAX_CODE)
                .IsFixedLength()
                .HasMaxLength(2);

            this.Property(t => t.INDIVIDUAL_TAX_3)
                .IsFixedLength()
                .HasMaxLength(8);

            this.Property(t => t.INDIVIDUAL_TAX_3_TAX_CODE)
                .IsFixedLength()
                .HasMaxLength(2);

            this.Property(t => t.INDIVIDUAL_TAX_4)
                .IsFixedLength()
                .HasMaxLength(8);

            this.Property(t => t.INDIVIDUAL_TAX_4_TAX_CODE)
                .IsFixedLength()
                .HasMaxLength(2);

            this.Property(t => t.INDIVIDUAL_TAX_5)
                .IsFixedLength()
                .HasMaxLength(8);

            this.Property(t => t.INDIVIDUAL_TAX_5_TAX_CODE)
                .IsFixedLength()
                .HasMaxLength(2);

            this.Property(t => t.Refund_Reference)
                .HasMaxLength(10);

            this.Property(t => t.vglbatch)
                .HasMaxLength(10);

            // Table & Column Mappings
            this.ToTable("so_gal_farevalue");
            this.Property(t => t.id).HasColumnName("id");
            this.Property(t => t.reference).HasColumnName("reference");
            this.Property(t => t.SectionString).HasColumnName("SectionString");
            this.Property(t => t.mir).HasColumnName("mir");
            this.Property(t => t.SECTION_LABEL).HasColumnName("SECTION LABEL");
            this.Property(t => t.FARE_SECTION_INDICATOR).HasColumnName("FARE SECTION INDICATOR");
            this.Property(t => t.CURRENCY__FOR_BASE_FARE).HasColumnName("CURRENCY  FOR BASE FARE");
            this.Property(t => t.BASE_FARE_AMOUNT).HasColumnName("BASE FARE AMOUNT");
            this.Property(t => t.CURRENCY_FOR_TOTAL).HasColumnName("CURRENCY FOR TOTAL");
            this.Property(t => t.TOTAL_AMOUNT).HasColumnName("TOTAL AMOUNT");
            this.Property(t => t.CURRENCY__FOR_EQ_AMOUNT).HasColumnName("CURRENCY  FOR EQ AMOUNT");
            this.Property(t => t.EQUIVALENT_AMOUNT).HasColumnName("EQUIVALENT AMOUNT");
            this.Property(t => t.CURRENCY_FOR_TAXES).HasColumnName("CURRENCY FOR TAXES");
            this.Property(t => t.TAX_1_IDENTIFIER_T1_).HasColumnName("TAX 1 IDENTIFIER T1:");
            this.Property(t => t.TAX_1).HasColumnName("TAX 1");
            this.Property(t => t.TAX_1_TAX_CODE).HasColumnName("TAX 1 TAX CODE");
            this.Property(t => t.TAX_2_IDENTIFIER_T2_).HasColumnName("TAX 2 IDENTIFIER T2:");
            this.Property(t => t.TAX_2).HasColumnName("TAX 2");
            this.Property(t => t.TAX_2_TAX_CODE).HasColumnName("TAX 2 TAX CODE");
            this.Property(t => t.TAX_3_IDENTIFIER_T3_).HasColumnName("TAX 3 IDENTIFIER T3:");
            this.Property(t => t.TAX_3).HasColumnName("TAX 3");
            this.Property(t => t.TAX_3_TAX_CODE).HasColumnName("TAX 3 TAX CODE");
            this.Property(t => t.TAX_IDENTIFIER_IT_).HasColumnName("TAX IDENTIFIER IT:");
            this.Property(t => t.INDIVIDUAL_TAX_1).HasColumnName("INDIVIDUAL TAX 1");
            this.Property(t => t.INDIVIDUAL_TAX_1_TAX_CODE).HasColumnName("INDIVIDUAL TAX 1 TAX CODE");
            this.Property(t => t.INDIVIDUAL_TAX_2).HasColumnName("INDIVIDUAL TAX 2");
            this.Property(t => t.INDIVIDUAL_TAX_2_TAX_CODE).HasColumnName("INDIVIDUAL TAX 2 TAX CODE");
            this.Property(t => t.INDIVIDUAL_TAX_3).HasColumnName("INDIVIDUAL TAX 3");
            this.Property(t => t.INDIVIDUAL_TAX_3_TAX_CODE).HasColumnName("INDIVIDUAL TAX 3 TAX CODE");
            this.Property(t => t.INDIVIDUAL_TAX_4).HasColumnName("INDIVIDUAL TAX 4");
            this.Property(t => t.INDIVIDUAL_TAX_4_TAX_CODE).HasColumnName("INDIVIDUAL TAX 4 TAX CODE");
            this.Property(t => t.INDIVIDUAL_TAX_5).HasColumnName("INDIVIDUAL TAX 5");
            this.Property(t => t.INDIVIDUAL_TAX_5_TAX_CODE).HasColumnName("INDIVIDUAL TAX 5 TAX CODE");
            this.Property(t => t.Tax_Amount).HasColumnName("Tax Amount");
            this.Property(t => t.Purchase_Amount).HasColumnName("Purchase Amount");
            this.Property(t => t.Sale_Amount).HasColumnName("Sale Amount");
            this.Property(t => t.CCSale_Amount).HasColumnName("CCSale Amount");
            this.Property(t => t.Posted_Sale).HasColumnName("Posted Sale");
            this.Property(t => t.Posted_Purchase).HasColumnName("Posted Purchase");
            this.Property(t => t.Refund_Sale_Amount).HasColumnName("Refund Sale Amount");
            this.Property(t => t.Refund_Purchase_Amount).HasColumnName("Refund Purchase Amount");
            this.Property(t => t.Refund_Reference).HasColumnName("Refund Reference");
            this.Property(t => t.Coupon1).HasColumnName("Coupon1");
            this.Property(t => t.Coupon2).HasColumnName("Coupon2");
            this.Property(t => t.Coupon3).HasColumnName("Coupon3");
            this.Property(t => t.Coupon4).HasColumnName("Coupon4");
            this.Property(t => t.vglbatch).HasColumnName("vglbatch");
            this.Property(t => t.Pending_Refund).HasColumnName("Pending Refund");
            this.Property(t => t.Refund).HasColumnName("Refund");
            this.Property(t => t.Refund_Date).HasColumnName("Refund Date");
        }
    }
}
